Method and system for managing configuration changes in a data processing system

ABSTRACT

A method of managing configuration changes in a data processing system, particularly a network wherein software products ( 250 ) must be distributed to client workstations. The method provides the definition of reference models ( 220   e - 220   d ) arranged in a tree ( 215 ); each reference model includes configuration elements (such as software products and/or hardware features and their desired target status) for the corresponding client workstations (subscribers). A target configuration ( 230 ) of the client workstations associated with each reference model is determined by inheriting the configuration elements of the parent reference models. A list of actions ( 245 ) to be carried out on each client workstation for reaching the corresponding target configuration is determined by comparing the target configuration with a current configuration of the client workstation stored in a corresponding inventory ( 245 ).

[0001] The present invention relates to a method and system for managingconfiguration changes in a data processing system.

[0002] Managing configuration changes in a data processing system is atime consuming activity, particularly when the system includes a greatnumber of destination units on which new configurations must beenforced. A typical example is that of a large network with hundreds ofworkstations where software products and/or hardware features areperiodically upgraded in order to be abreast of the informationtechnology development.

[0003] Software distribution applications have been proposed in the lastyears to assist a system administrator in efficiently managingdeployment of software products to (client) workstations. A softwaredistribution application runs on a server workstation and controlsbuilding of packages including new software products (or new versionsthereof) to be installed and instructions understandable by the clientworkstations. Each package is distributed to the respective clientworkstation through the network; the instructions embedded in thepackage cause the software products to be automatically installed orremoved in order to reach the desired (software) configuration of theclient workstation.

[0004] However, this solution is not completely satisfactory.Particularly, the administrator is faced with the burden of manuallydefining the packages to be distributed to the client workstations.Moreover, the administrator cannot rely on information provided by thesoftware distribution application for deciding which software productsmust be installed and/or removed and on which client workstations thenew configurations must be enforced. As a consequence, the process ofmanaging the configuration changes is very complex and error-prone.

[0005] The drawbacks of the solutions known in the art are particularlyacute in large systems, where different and frequent configurationchanges are enforced on various destination units.

[0006] It is an object of the present invention to overcome theabove-mentioned drawbacks. In order to achieve this object, a method asset out in the first claim is proposed.

[0007] Briefly, the present invention provides a method of managingconfiguration changes in a data processing system having a plurality ofdestination units, the method including the steps of providing aplurality of reference models arranged in a tree starting from a rootreference model, associating each destination unit with a referencemodel including configuration information specific for the correspondingdestination units, determining a target configuration for thedestination units associated with a selected reference model accordingto the configuration information of the reference models in a path fromthe root reference model to the selected reference model, and causingeach destination unit associated with the selected reference model to beupdated according to the target configuration.

[0008] Moreover, the present invention also provides a computer programfor performing the method, a product storing the program, and acorresponding data processing system.

[0009] Further features and the advantages of the solution according tothe present invention will be made clear by the following description ofa preferred embodiment thereof, given purely by way of a non-restrictiveindication, with reference to the attached figures, wherein:

[0010]FIG. 1 is a basic block diagram of a networking system in whichthe method of the invention can be used;

[0011]FIG. 2 shows a partial content of a working memory of a serverworkstation included in the networking system;

[0012]FIGS. 3a-3 b are a flow chart of a method for managingconfiguration changes to client workstations of the networking system.

[0013] With reference in particular to FIG. 1, there is shown anetworking system 100, such as a WAN (Wide Area Network) used in a largecompany. The networking system 100 if formed by a plurality ofworkstations 105, typically consisting of PCs (Personal Computers). Theworkstations 105 are clustered around corresponding concentrators 110(such as routers/hubs); the concentrators 110 are installed atdistributed sites and are connectable by a telephone line 115. Thenetworking system 100 has a client/server architecture, wherein one ormore of the workstations 105 (generally consisting of powerfulcomputers) manage network resources, such as shared files and devises;the other workstations 105 operate as clients on which end-users runapplications relying on server resources.

[0014] Each workstation 105 includes several units, which are connectedin parallel to a communication bus 120. In particular, a centralprocessing unit (CPU) 125 controls operation of the workstation 105, aworking memory 130 (typically a DRAM) is used directly by the CPU 125,and a read-only memory (ROM) 135 stores a basic program for starting theworkstation 105. Various peripheral units are further connected to thebus 120 (by means of respective interfaces). Particularly, a bulk memoryconsists of a hard-disk 140 and of a driver unit (DRV) 145 for readingCD-ROMs 150; the workstation 105 further includes an input unit (IN)155, which consists for example of a keyboard and a mouse, and an outputunit (OUT) 160, which consists for example of a monitor. A networkinterface card (NIC) 165 is used to connect the workstation 105 to theconcentrator 110.

[0015] Similar considerations apply if the networking system isassociated with a department of the company (or with any other entity),if the networking system has a different topology, if the networkingsystem consists of a LAN (Local Area Network), if the networking systemincludes different components (such as one or more switches), if eachworkstation has a different structure (for example with amulti-processor architecture), and the like.

[0016] Considering now FIG. 2, there is shown a partial content of theworking memory 130 of a workstation operating as a software distributionserver; the information (programs and data) is typically stored on thehard-disk and loaded (at least partially) into the working memory 130when the programs are running, together with an operating system andother application programs (not shown in the figure). The programs areinitially installed onto the hard disk of the server workstation fromCD-ROM.

[0017] The working memory 130 includes an input/output interface (I/O)205 for exchanging information with the peripheral units of the serverworkstation. The input/output interface 205 communicates with a changeconfiguration management module (CONFIG) 210.

[0018] The configuration module 210 controls a repository (MODELS) 215of reference models, each one defining a profile with configurationinformation specific for the corresponding client workstations. In theexample at issue, the repository 215 includes an enterprise model 220 e,a secretary model 220 s, a manager model 220 m and a developer model 220d. The configuration module 215 further accesses a company database 225.

[0019] A generic reference model includes one or more records definingrespective configuration elements. Each record consists of a field ELEidentifying the configuration element, such as a software product or ahardware feature. A field TGT denotes a desired target status of theconfiguration element; for example, the target status for a softwareproduct indicates that the software product is to be installed, removed,or installed/removed in an undoable manner, while the target status fora hardware feature indicates a hard-disk size, a CPU model, or a workingmemory capacity. A further field DPD includes dependency informationindicating logic relations between the configuration elements; forexample, the filed DPD contains the configuration elements required forrunning a software product (pre-requisites), the configuration elementsin conflict with the software product (ex-requisites), or theconfiguration elements to be installed in a certain order together withthe software product (co-requisites).

[0020] The reference model further includes a field SBS, which is usedto associate the reference model with one or more client workstations(subscribers); the association is carried out statically and/ordynamically. When the subscribers are defined statically, the field SBSsimply contains a list of the client workstations; conversely, when thesubscribers are defined dynamically, the field SBS contains a query tobe run on the company data base 225, whose result provides the list ofthe client workstations.

[0021] The reference models are hierarchically arranged in a tree.Particularly, the enterprise model 220 e defines a root of the tree; thesecretary model 220 s and the manager model 220 m depend on theenterprise model 220 e, and in turn the developer model 230 d depends onthe manager model 220 m. As described in detail in the following, eachchild reference model 220 s, 220 m and 220 d (which depends on acorresponding parent reference model 220 e, 220 e and 220 m,respectively) inherits the configuration information of all thereference models in a path from the root reference model 220 e to thechild reference model. It should be noted that the inheritance mechanismdoes not implement an “is-a” semantic; for example, a developer is not amanager, but all the configuration elements (not the subscribers)belonging to the manager model 220 m are inherited by the developermodel 220 d.

[0022] The company database 225 defines an organisation chart of thecompany and consists of a relational table formed by a record for eachemployee. The record is composed of a field INFO containing informationabout the employee, such as his or her name, telephone and facsimilenumbers, e-mail address, department, position, manager and subordinatepersons (if any), and the like. A field WS identifies the clientworkstation assigned to the employee, for example its type, serialnumber, location, and IP address. A flag EX indicates that the clientworkstation assigned to the employee is to be excluded from the resultof the query (when asserted).

[0023] The configuration module 210 generates a memory structure 230indicating a target configuration for the client workstations associatedwith a selected reference model. The target configuration 230 includesone or more configuration elements, each one defined by the respectivefields ELE and TGT (indicating the configuration element and its targetstatus, respectively), and the list of the client workstationsassociated with the selected reference model, each one identified by therespective field WS.

[0024] The target configuration 230 is supplied to a synchronisationengine (SYNC) 235, which accesses an inventory 240 storing a currentconfiguration of the client workstations. The configuration inventory240 includes a record for each client workstation; the record consistsof the respective field WS (identifying the client workstation) and afield CURR denoting the hardware features of the client workstation andthe software products installed thereon. The synchronisation engine 235further accesses a state transition table 243. The state transitiontable 243 consists of a lookup table, wherein each record has a keyformed by a field STSs and a field STSe; the fields STSs and STSeindicate a starting status and an ending status, respectively, of ageneric configuration element belonging to a corresponding category(such as hardware feature or software product). The key STSs,STSe isassociated with an attribute consisting of a field ACT indicating anaction to be performed for reaching the ending status STSe from thestarting status STSs (for example installing a software product,removing a software product, upgrading the CPU, increasing the size ofthe hard-disk, and so on).

[0025] The synchronisation engine 235 generates a memory structure 245defining a list of actions to be performed on each client workstationassociated with the selected reference model for reaching the targetconfiguration. Particularly, the action list 245 includes a series ofrecords, each one consisting of the field WS identifying the clientworkstation, the field ELE identifying the configuration elementinvolved, and the field ACT indicating the corresponding action to becarried out on the client workstation.

[0026] The action list 245 is provided to a deployment agent (DEPL) 250,which accesses a repository (SW) 255 of the software products. Thedeployment agent 250 builds a distribution package (PCK) 260 for eachclient workstation; the distribution package 260 consists of one or morefiles containing the software products to be installed on the clientworkstation and instructions for automatically executing the actions(relating to software products) indicated in the corresponding recordsof the action list 245 (such as installing the software productsincluded in the package or removing other software products). Thedeployment agent 250 further controls the updating of information storedin the configuration inventory 240.

[0027] The distribution packages 260 are provided to a network interface(NET) 265, which sends the packages to the corresponding clientworkstations according to a plan scheduled by the deployment agent 250.The network interface 265 is also connected to the deployment agent 250directly for supplying messages received from the client workstations.The synchronisation engine 235 and the deployment agent 250 furthercommunicate with the configuration module 210 for receiving commands andproviding return codes indicative of a result of the correspondingoperations.

[0028] Similar considerations apply if the programs and data arestructured in a different manner, if other modules or functions areprovided, if the tree consists of a different number of referencemodels, if one or more of the reference models are dummy models withoutany subscriber associated therewith, if the company database has adifferent architecture and stores other information, if two or moreclient workstations are assigned to some employees, and the like.Alternatively, equivalent configuration information is included in thereference models, different configuration elements are managed (such asapplication parameters, databases, audio and video recordings, or anyother digitally encoded product), different target status are supported(for example indicating that a software product must be simply disabledbut not removed), or the subscribers consist of different destinationunits (such as software applications or profiles associated withrespective users logging into the client workstations).

[0029] As shown in FIGS. 3a-3 b, a whole software distributionapplication consisting of the configuration module, the synchronisationengine and the deployment agent performs a method 300 when running onthe server workstation. The method 300 starts at block 303 and thenpasses to block 306, wherein a menu with a series of possible choices isdisplayed to a system administrator on the monitor of the serverworkstation. The method executes the operations corresponding to thechoice selected by the administrator. Particularly, if the administratorhas selected the function of editing the reference model repository theblocks 309-318 are carried out, while if the administrator has selectedthe function of deploying a new configuration to the correspondingclient workstations the blocks 320-375 are carried out; conversely, ifthe administrator has chosen to exit the software distributionapplication, the method ends at the final block 378.

[0030] Considering now block 309 (editing function), the administratordeletes a selected reference model (restructuring the tree accordingly),inserts a new reference model into the tree, or selects a referencemodel to be updated. The method continues to block 312, wherein if areference model has been selected for updating the administrator deletesa configuration element, creates a new configuration element, or updatesthe target status of a selected configuration element. Passing to block315, the administrator edits the dependency information for the selectedconfiguration element (pre-requisites, ex-requisites or co-requisites),for example adding, updating or deleting items. With reference to block318, the administrator modifies the subscribers assigned to the selectedreference model; particularly, the identifier of a client workstation isdeleted from the corresponding list, the identifier of a new clientworkstation is inserted, or the query dynamically defining the list ofthe client workstations is created or updated. The method then returnsto block 306 waiting for a new command by the administrator.

[0031] Considering now block 320 (deployment function), theadministrator selects one of the reference models to be enforced. Themethod descends into block 321, wherein all the configuration elementsof the root reference model are added to the target configuration (emptyat the beginning). The configuration module than checks at block 324whether the selected reference model has been reached (and completelyprocessed). If so, the method passes to block 325 (described in thefollowing). On the contrary, the method proceeds to block 330, wherein anew configuration element of the reference models down the tree along apath from the root reference model to the selected reference model isconsidered (staring from the first configuration element in the childreference model depending from the root reference model directly). Ifthe target configuration does not include the current configurationelement, the method continues to block 333, wherein the currentconfiguration element is added to the target configuration; conversely,the method continues to block 336, wherein the target status and thedependency information of the (previous) configuration element in thetarget configuration are replaced with the corresponding fields of thecurrent configuration element. In both cases, the method returns toblock 324 for processing a next configuration element of the samereference model or the first configuration element of a next referencemodel.

[0032] Considering now block 325, the target configuration is updatedaccording to the corresponding dependency information, in order toresolve all the logic relations between the configuration elements. Forexample, configuration elements corresponding to the pre-requisiteproducts and the co-requisite products to be installed are added, theconfiguration elements are rearranged for meeting the required order ofinstallation, or configuration elements corresponding to theex-requisite products to be removed are inserted.

[0033] The method then passes to block 338, wherein the configurationmodule verifies whether the subscribers are defined statically ordynamically in the selected reference model. In the first case, the listof the client workstations included in the selected reference model isadded to the target configuration at block 339, and the method thendescends into block 342 (described in the following). Conversely, if thesubscribers are defined dynamically the corresponding query included inthe selected reference model is run on the company database at block 345in order to extract the list of the client workstations. The list ispruned at block 348 of the client workstations to be excluded from thedeployment of the new configuration according to the corresponding flag.The method then passes to block 342.

[0034] Considering now block 342, the current configuration of theclient workstations associated with the selected reference model isextracted from the configuration inventory. The synchronisation enginethen generates at block 351 the action list for each client workstationby comparing the target configuration with the corresponding currentconfiguration. Particularly, if the current status of each configurationelement (software product or hardware feature) meets the desired targetstatus, no action is performed; conversely, the action required to reachthe target status of the configuration element from its current statusis extracted from the state transition table and added to the list.

[0035] The method proceeds to block 354, wherein the deployment agentverifies whether a current hardware structure of the client workstationsassociated with the selected reference model meets the hardwarepre-requisites of the target configuration. For all the clientworkstations that meet the hardware pre-requisites of the targetconfiguration, the corresponding distribution package is built at block357; more specifically, the deployment agent inserts each softwareproduct to be installed into the distribution package, and addinstructions for performing the required actions. Conversely, for allthe client workstations that do not meet the hardware pre-requisites ofthe target configuration, for example because the CPU model cannot runthe software products to be installed or the hard-disk size isinsufficient, an error condition is entered at block 366; particularly,a warning is provided to the administrator and the deployment of thetarget configuration to these client workstations is aborted.

[0036] In both cases, the method continues to block 372, wherein thepackages (if any) are sent to the respective client workstations throughthe network. Each package is received on the client workstation; theinstructions embedded in the package are executed in order to install orremove the corresponding software products. A return code message issent back from each client workstation to the server workstation forreporting the result of the configuration change; the deployment agentupdates the configuration inventory accordingly at block 375. The methodthen returns to block 306 waiting for a new command by theadministrator.

[0037] The following tables define an example of configuration elementsbelonging to each reference model: Field ELE Field TGT Enterprise modelE-mail program (software program) Installed Anti-virus (softwareprogram) Installed Working memory size (hardware feature)  >=64 MBSecretary model Office automation (software program) Installed Games(software program) Not installed Manager model Office automation(software program) Installed Reporting (software program) InstalledDeveloper model Compiler (software program) Installed Reporting(software program) Inst. undoable Working memory size (hardwarefeature) >=128 MB

[0038] Let us suppose now that we want to enforce the developer model.The target configuration for the client workstations associated with thedeveloper model is defined as: Field ELE Field TGT E-mail program(software program) Installed Anti-virus (software program) InstalledWorking memory size (hardware feature) >=128 MB Office automation(software program) Installed Reporting (software program) Inst. undoableCompiler (software program) Installed

[0039] As a consequence, if a client workstation associated with thedeveloper model has only the anti-virus installed thereon and itsworking memory size is greater than 128 MB, the following list ofactions is to be performed for reaching the target configuration: FieldELE Field ACT E-mail program (software program) Install Officeautomation (software program) Install Reporting (software program)Install, undoable Compiler (software program) Install

[0040] Likewise considerations apply if an equivalent method isperformed, for example if report functions are provided, if the companyinventory is stored elsewhere and the query is run by anotherworkstation, and so on.

[0041] More generally, the present invention provides a method ofmanaging configuration changes in a data processing system having aplurality of destination units. The method includes the steps ofproviding a plurality of reference models arranged in a tree startingfrom a root reference model, and associating each destination unit witha reference model including configuration information specific for thecorresponding destination units; the method further includes the stepsof determining a target configuration for the destination unitsassociated with a selected reference model according to theconfiguration information of the reference models in a path from theroot reference model to the selected reference model, and causing eachdestination unit associated with the selected reference model to beupdated according to the target configuration.

[0042] The devised solution provides a scalable and flexible way ofspecifying the target configuration of each destination unit.Particularly, the reference models allow the destination units to bearranged into logical, functional groups according to the role that eachdestination unit plays in the system. Therefore, any profile ororganisational change can be automatically reflected on the destinationunits involved simply modifying the corresponding reference models. Inthis way, a large system with a great number of destination units can bemanaged as a small system, by handling all the destination unitsassociated with each reference model as a single entity.

[0043] The hierarchical structure of the reference models greatlysimplifies the modelling of the destination units, by allowing astep-by-step definition of the target configuration of each destinationunit; in fact, the configuration elements common to all the destinationunits are defined only in the root reference model, and theconfiguration elements specific for each functional group are definedmoving down the tree. In this way, the number of reference models neededto describe the whole system is greatly reduced; moreover, each changeto a reference model is automatically reflected into the targetconfiguration of all the destination units associated with its childreference models.

[0044] The solution according to the present invention simplifies thedeployment of new configurations in the system. As a consequence, theprocess of managing frequent configuration changes to different groupsof destination units is made more reliable.

[0045] The preferred embodiment of the invention described above offersfurther advantages. For example, the algorithm proposed for determiningthe target configuration from the corresponding reference models alongthe path from the root reference model to the selected reference modelis particular simple and effective. This solution allows any referencemodel to inherit all the configuration elements of the parent referencemodels; at the same time, each reference model can override the targetstatus or block the installation/removal of any configuration elementdefined in the parent reference models.

[0046] Alternatively, the target configuration is determined in adifferent manner, for example without the possibility of overridingand/or blocking the configuration elements defined in the parentreference models.

[0047] The dependency information inserted in the reference modelsprevents definition and enforcement of incorrect configurations. Inaddition, the verification of the current hardware structure of eachdestination unit (in order to check whether it meets the hardwareprerequisites of the target configuration) ensures that each destinationunit is at a level allowing all the software products to be installed torun correctly.

[0048] Likewise considerations apply if the dependency information isused in a different manner for determining the target configuration, ifthe method only verifies compliance of the target configuration with thecorresponding dependency information (without modifying the targetconfiguration but simply entering an error condition if the result ofthe verification is negative), if the dependency information is notdefined in the reference models but in a distinct memory structure thatis accessed by the configuration module each time a reference model mustbe enforced, if the package is sent to the client workstations in anycase (even if an error condition has been entered), and so on. However,the solution according to the present invention leads itself to becarried out even without the possibility of defining any dependencyinformation for the configuration elements or any hardware feature inthe reference models.

[0049] The dynamic definition of the subscribers associated with eachreference model makes it possible to evaluate the destination units towhich the configuration changes must be enforced when the newconfiguration is actually deployed. Moreover, the possibility ofexcluding some destination unit from the result of the query allowsthese destination units to be left temporary unchanged without modifyingthe field defining the subscribers in the corresponding reference model.

[0050] Alternatively, the destination units are associated with eachreference model in a different manner, for example defining groups ofdestination units (such as the client workstations attached to aspecified router), the whole result of the query is always employed(without the possibility of excluding any destination unit), thesubscribers are defined only statically or dynamically, and the like.

[0051] The inventory storing the current configuration of eachdestination unit allows a level of the configuration elements present onthe client workstations to be efficiently tracked. For example, theadministrator can easily decide where to distribute a new softwareproduct already installed on a subset of the client workstations and nowto be installed on all the client workstations of the system, or whereto distribute a new version of a software product already installed on asubset of the client workstations.

[0052] The method described above is particularly advantageous for asoftware distribution application used in a large network, wherein thenew configurations are automatically deployed from the serverworkstation to a great number of client workstations.

[0053] Similar considerations apply if the state transition table isreplaced by an equivalent memory structure, or if the list of actions isdetermined in a different manner according to a comparison between thetarget configuration and the current configuration of each destinationunit (for example with an algorithm embedded in the synchronisationengine). However, the proposed solution leads itself to be implementedeven without any configuration inventory (for example collecting theinformation indicative of the current configuration of each clientworkstation dynamically by the server workstation); moreover, the methodof the invention is also suitable to be used in a different dataprocessing system (even with the destination units not connected to eachother in a network, for example copying the packages onto CD-ROMs thatare manually distributed), or for controlling only hardwareconfigurations.

[0054] Advantageously, the method proposed by the present invention isimplemented with a computer program, which is provided on CD-ROM.

[0055] Alternatively, the program is provided on floppy-disk, ispre-loaded onto the hard-disk, or is stored on any other computerreadable medium, is sent to the computer through the network, isbroadcast, or more generally is provided in any other form directlyloadable into a working memory of a computer. However, the methodaccording to the present invention leads itself to be carried out evenwith a hardware structure installed on the server workstation, forexample integrated in a chip of semiconductor material.

[0056] Naturally, in order to satisfy local and specific requirements, aperson skilled in the art may apply to the solution described above manymodifications and alterations all of which, however, are included withinthe scope of protection of the invention as defined by the followingclaims.

1. A method (300) of managing configuration changes in a data processing system having a plurality of destination units, the method including the steps of: providing (309-318) a plurality of reference models arranged in a tree starting from a root reference model, associating (338,339,345-348) each destination unit with a reference model including configuration information specific for the corresponding destination units, determining (320-336) a target configuration for the destination units associated with a selected reference model according to the configuration information of the reference models in a path from the root reference model to the selected reference model, and causing (342-375) each destination unit associated with the selected reference model to be updated according to the target configuration.
 2. The method (300) according to claim 1, wherein the configuration information includes at least one record indicating a target status of a corresponding configuration element, the step (320-336) of determining the target configuration including, for each current record of the reference models along the path: verifying (330) if the target configuration includes a previous record for the configuration element of the current record, and adding (333) the current record to the target configuration if the verification is negative or replacing (336) the target status of the previous record with the target status of the current record if the verification is positive.
 3. The method (300) according to claim 2, further including the step of providing (315) dependency information indicating logic relations between the configuration elements, the target configuration being determined (325) further according to the dependency information of the corresponding configuration elements.
 4. The method (300) according to any claim from 1 to 3, wherein the configuration information includes an indication of at least one hardware pre-requisite, the method further including the step of verifying (351-360) whether a current hardware structure of each destination unit associated with the selected reference model meets each hardware pre-requisite of the target configuration.
 5. The method (300) according to any claim from 1 to 4, further including the step of running (345) a query on a memory structure for dynamically extracting a list of the destination units associated with the selected reference model.
 6. The method (300) according to claim 5, further including the step of excluding (348) each destination unit from the list if a corresponding flag in the memory structure is asserted.
 7. The method (300) according to any claim from 1 to 6, further including the steps of: providing (342) an inventory storing an indication of a current configuration of each destination unit, and determining (351) a list of actions for reaching the target configuration on each destination unit associated with the selected reference model according to a comparison between the target configuration and the corresponding current configuration.
 8. The method (300) according to claim 7, wherein the configuration information includes an indication of at least one digitally encoded product to be installed or removed, and wherein the data processing system consists of a network with a server workstation and a plurality of client workstations each one associated with at least one destination unit, the method further including, for each destination unit associated with the selected reference model, the steps of: building (357) a package under the control of the server workstation, the package including each product of the target configuration to be installed and instructions for automatically executing the list of actions, distributing (372) the package to the client workstation associated with the destination unit through the network, and updating (375) the inventory according to the actions executed on the client workstation.
 9. A computer program (210,235,250) directly loadable into a working memory (130) of a computer (105) for performing the method of any claim form 1 to 8 when the program is run on the computer.
 10. A program product (150) including a computer readable medium on which the program (210,235,250) of claim 9 is stored.
 11. A data processing system (100) including a plurality of destination units (105), means (205-215) for providing a plurality of reference models arranged in a tree starting from a root reference model, means (210,215,225,230) for associating each destination unit with a reference model including configuration information specific for the corresponding destination units, means (230-245) for determining a target configuration for the destination units associated with a selected reference model according to the configuration information of the reference models in a path from the root reference model to the selected reference model, and means (245-265) for causing each destination unit associated with the selected reference model to be updated according to the target configuration. 